↓Skip to main content

My Trash Day AI Server

The find #

This is the story of “Curby,” my local AI server that started as a tower case sitting on the curb on trash day. It was a dirty, dusty full-size gaming rig. Somebody retired it and put it out with the bins. I named it Curby as on homage to its origins with me. I discovered it had been “kicked to the curb,” prematurely, as it turns out.

My expectations were low. Curby was pretty grimy, and I figured I was at most getting a free case with room for hard drives. Maybe I could turn it into a NAS. Upon casual inspection, the machine had already been picked clean of the “good stuff.” The RAM and NVMe drives were gone, leaving silhouettes in the dust. Based on its state of cleanliness, I figured that the best I could hope for was salvaging the case, saving $100 or so.

The front intake and its filter, as I found them
The front intake and its filter, as I found them

Despite its condition, I was still curious enough to find out more about it. I hit it with compressed air until I could see the components again, dropped in some spare RAM, and turned it on. Various LEDs came on slowly as the machine eventually POSTed into the BIOS screen. That was a pleasant surprise. Then I discovered what I had: an ASUS ROG Maximus XI Hero board and an i9-9900K. I had premium motherboard and processor for the time the machine was built, along with a 4TB SATA drive that the parts scavenger missed. With the recent inflation of SSD pricing, this discovery made the project worth the effort even if I had stopped right there.

But I didn’t stop. The motherboard has two 16-lane PCIe slots. I hoped that meant I could install two Nvidia 3080s that I already had in a single box, for a total of 20 GB of VRAM. Perfect for a local AI inference server.

The rebuild #

As pictured above, I was dealing with a thick coat of dust inside and out. A dual-GPU plan called for a new larger power supply. The old cooler’s radiator, based on the cake of dust, had been under heavy load for some time. Given that, the plan was to replace everything except the CPU and motherboard. I stripped everything out of the case and cleaned it thoroughly.

I thoroughly vacuumed, scrubbed, and wiped down the motherboard and processor. I reinstalled them in the case along with a new AIO liquid cooler, new case fans, and a new power supply.

The best-laid plans #

As noted, my first idea was dual RTX 3080s. I have experience with Ollama and already own a couple of 3080s, and 20 GB of VRAM across two cards sounded good. Unfortunately, I ran into a physical problem. The spacing of the slots and the size of the case meant that the two cards could not fit at the same time: they were just too tall.

The whole point of this was to re-purpose existing hardware, so I changed tack. I decided to move my AMD RX 7900 XT, which has 20 GB of VRAM over from Wintermute, my workstation. Wintermute got a shiny old 3080, where it would serve just fine and I actually need CUDA for DaVinci Resolve.

Everything was bolted in place and wired up for the moment of truth: it POSTed. I added all 96 GB of RAM and a shelf-spare NVME, and booted into my install USB. The OS (Butterbian) installed fine, and I was off and running.

The finished build, cleaned up and running
The finished build, cleaned up and running

As a nod toward Curby’s gaming roots, I had to have some RGB lighting and an action figure in the case. I chose Tron, because he fights for the users.

Why a 125B model fits in a trash-day box #

AI is all about size and speed. To be effective, a local model must be fast and large enough to produce useful results. Smaller, slower models simply cannot produce results as good as frontier models. But, is it possible to get something useful running on equipment that does not require the equivalent of a car loan to purchase (or worse)? Enter Strata, a Flash-MoE engine, to solve the problem. Strata makes it possible to run Qwen3.8-Flash-Next, a 125 billion parameter mixture-of-experts model with far less VRAM than had been the norm.

A model that size normally implies a data center, but its nature as a mixture-of-experts changes things. Out of 24,576 experts, only about ten fire per token. Because of this, you never need the whole model in VRAM at once. Strata is built around this model architecture.

In Strata, all the experts live in system RAM, and Curby has 96 GB of it, pulled from a couple of other machines. The 20 GB of VRAM on the GPU, formerly the limiter of model size, now acts as a cache for the experts that get used most, while the CPU works through the rest in parallel.

The result is a model large enough for real work and fast enough to interact with.

What it runs #

To support large conversations and more complex operations, Curby’s context window is 256k tokens, and it sustains 40 tokens per second or more with speculative decoding on, with bursts into the 50-70 tps range. (Hmmm…tokens per second. I think I just figured out what a “TPS Report” is for.) A model reload takes about a minute, which only matters when I restart the service mid-conversation.

Strata opens an OpenAI-style API on the server. Right now, five things use that API on Curby for inference:

  • hn_summarizer, which turns a Hacker News feed into a daily digest email of tech news and social media post ideas.
  • Home Assistant, for Frigate person verification and vision tasks. When Frigate thinks it sees a person in the driveway or at the front door, frame grabs are analyzed to rule out false positives.
  • I’ve wired in OpenCode on my workstation, so my coding agent has a local model to fall back on.
  • My Hermes agent delegates certain less time-sensitive tasks to Curby.
  • A Docker container that publishes “The Helding Herald,” my one-page morning newspaper crafted from a selection of RSS feeds into and emailed to me each morning as a PDF.

I continue to explore other areas where I can put Curby to good use, performing AI tasks locally and in complete privacy.

To keep up with Curby, I also developed a small custom dashboard that writes live stats to the LCD on the AIO cooler. Who doesn’t love a good dashboard?

The cooler’s dash while Strata generates
The cooler’s dash while Strata generates

Was it worth it? #

Yes. A free case, a GPU I already owned, and a few hours (well, more than a few) of setup turned a discarded gaming PC into a machine that runs a 125 billion parameter LLM on my own network. It can’t replace the frontier models for the heavy work. But it can do small and medium-sized jobs in a reasonable time and respect privacy.

It is true that the specs are a little dated now, but they were top of the line when Curby was first built and are still quite performant, especially under Linux. Given what memory and storage cost these days (replacing the RAM and storage that would have been in Curby before he was trashed would cost nearly $2000 in late 2026), people are making do with older systems for much longer. Curby still has years left to go, and he is doing something much more exciting than playing games.


Built on: Strata, Qwen3.8-Flash-Next, Butterbian, AMD RX 7900 XT.